// 模拟登录和注册功能
// 在实际项目中，这里应该包含与后端API的通信

interface RegisterData {
  email: string
  verification: string
  name: string
  password: string
  confirmPassword: string
  termsAccepted: boolean
}

interface RegisterResult {
  success: boolean
  message?: string
}

export async function login(email: string, password: string): Promise<boolean> {
  // 模拟 API 请求
  return new Promise((resolve) => {
    setTimeout(() => {
      // 在实际项目中，这里将发送请求到后端验证用户凭据
      const success = email === "demo@example.com" && password === "password"

      // 模拟登录成功后保存用户会话
      if (success) {
        localStorage.setItem(
          "user",
          JSON.stringify({
            email,
            name: "张三",
            isLoggedIn: true,
          }),
        )
      }

      resolve(success)
    }, 800)
  })
}

export async function register(data: RegisterData): Promise<RegisterResult> {
  // 模拟 API 请求
  return new Promise((resolve) => {
    setTimeout(() => {
      // 在实际项目中，这里将发送请求到后端创建新用户

      // 模拟检查邮箱是否已被使用
      const emailExists = data.email === "demo@example.com"

      if (emailExists) {
        resolve({
          success: false,
          message: "该邮箱已被注册，请使用其他邮箱或找回密码。",
        })
      } else {
        // 模拟验证码验证
        const verificationCorrect = data.verification === "123456"

        if (!verificationCorrect) {
          resolve({
            success: false,
            message: "验证码不正确，请重新输入。",
          })
        } else {
          resolve({
            success: true,
          })

          // 模拟保存用户信息
          localStorage.setItem(
            "user",
            JSON.stringify({
              email: data.email,
              name: data.name,
              isLoggedIn: true,
            }),
          )
        }
      }
    }, 1000)
  })
}

export function logout(): void {
  // 模拟清除用户会话
  localStorage.removeItem("user")
  // 在实际项目中，这里还可能需要清除cookies或调用后端API
}

export function isLoggedIn(): boolean {
  // 检查用户是否已登录
  const user = localStorage.getItem("user")
  if (!user) return false

  try {
    const userData = JSON.parse(user)
    return !!userData.isLoggedIn
  } catch (error) {
    return false
  }
}

export function getCurrentUser() {
  // 获取当前登录用户信息
  const user = localStorage.getItem("user")
  if (!user) return null

  try {
    return JSON.parse(user)
  } catch (error) {
    return null
  }
}
